Ember.js অ্যাপ্লিকেশন একটি সুগঠিত ডিরেক্টরি স্ট্রাকচার ব্যবহার করে, যা প্রজেক্টের বিভিন্ন উপাদান আলাদা রাখে। এটি কোড সংরক্ষণ, পরিচালনা, এবং ডেভেলপমেন্ট সহজ করে তোলে। এখানে প্রতিটি ডিরেক্টরি এবং এর উদ্দেশ্য ব্যাখ্যা করা হলো।
ডিরেক্টরি স্ট্রাকচার এবং ভূমিকা
project-name/
├── app/
├── config/
├── node_modules/
├── public/
├── tests/
├── vendor/
├── tmp/
├── ember-cli-build.js
├── package.json
├── .ember-cli
├── README.md
app/ ডিরেক্টরি
এটি প্রজেক্টের মূল সোর্স কোড ধারণ করে। এখানে অ্যাপ্লিকেশনের মডেল, ভিউ, কন্ট্রোলার, রাউট, এবং কম্পোনেন্ট সংরক্ষিত হয়।
app এর প্রধান সাব-ডিরেক্টরি:
- components/
পুনঃব্যবহারযোগ্য UI উপাদান তৈরি ও সংরক্ষণ।
উদাহরণ: একটি বাটন কম্পোনেন্ট বা নেভিগেশন মেনু। - controllers/
রাউটের সাথে যুক্ত কন্ট্রোলারের লজিক।
উদাহরণ: ডেটা ম্যানিপুলেশন এবং ভিউ-র মডেল প্রাসঙ্গিক লজিক। - models/
অ্যাপ্লিকেশনের ডেটা কাঠামো এবং API এর মাধ্যমে ডেটা পরিচালনা।
উদাহরণ: ব্যবহারকারী বা প্রোডাক্ট মডেল। - routes/
রাউট সম্পর্কিত লজিক। এটি কন্ট্রোলার এবং টেমপ্লেটের মধ্যে ডেটা সংযোগ স্থাপন করে।
উদাহরণ: ব্যবহারকারীর তালিকা রাউট। - templates/
অ্যাপ্লিকেশনের UI তৈরি করতে ব্যবহৃত HTMLBars টেমপ্লেট।
উদাহরণ: হোমপেজ বা ড্যাশবোর্ডের ভিজ্যুয়াল লেআউট। - styles/
অ্যাপ্লিকেশনের CSS বা SCSS ফাইল সংরক্ষণ।
উদাহরণ: কাস্টম স্টাইলিং। - helpers/
ছোটখাটো জাভাস্ক্রিপ্ট ফাংশন, যা টেমপ্লেটে পুনঃব্যবহারযোগ্য লজিক যোগ করে।
উদাহরণ: একটি টেক্সট ফরম্যাটিং হেল্পার। - services/
অ্যাপ্লিকেশনের বিভিন্ন স্থানে ব্যবহারের জন্য শেয়ারযোগ্য ডেটা বা লজিক।
উদাহরণ: অথেন্টিকেশন বা ডেটা ক্যাশিং।
config/ ডিরেক্টরি
এই ডিরেক্টরিতে অ্যাপ্লিকেশনের কনফিগারেশন ফাইল থাকে।
- environment.js
ডেভেলপমেন্ট, প্রোডাকশন, এবং টেস্ট পরিবেশের জন্য আলাদা কনফিগারেশন সেটআপ।
node_modules/ ডিরেক্টরি
এই ফোল্ডারটি npm প্যাকেজ ম্যানেজারের মাধ্যমে ইনস্টল করা সমস্ত ডিপেন্ডেন্সি সংরক্ষণ করে।
- সাধারণত এটি ম্যানুয়ালি সম্পাদনা করা হয় না।
public/ ডিরেক্টরি
এটি স্ট্যাটিক ফাইল যেমন ইমেজ, ফন্ট, এবং অন্যান্য সম্পদের জন্য ব্যবহৃত হয়।
- উদাহরণ:
public/images/logo.png
tests/ ডিরেক্টরি
এটি অ্যাপ্লিকেশনের জন্য টেস্ট ফাইল সংরক্ষণ করে। টেস্টিং করার সময় এই ফোল্ডার ব্যবহৃত হয়।
tests এর প্রধান সাব-ডিরেক্টরি:
- acceptance/: পুরো অ্যাপ্লিকেশন বা বড় অংশের টেস্টিং।
- integration/: কম্পোনেন্ট এবং টেমপ্লেটের টেস্ট।
- unit/: মডেল বা সার্ভিসের টেস্ট।
vendor/ ডিরেক্টরি
তৃতীয় পক্ষের লাইব্রেরি বা কাস্টম জাভাস্ক্রিপ্ট এবং CSS ফাইল সংরক্ষণ।
tmp/ ডিরেক্টরি
এটি Ember.js এর বিল্ড প্রক্রিয়ার সময় অস্থায়ী ফাইল সংরক্ষণ করে।
- এটি প্রোডাকশনের জন্য গুরুত্বপূর্ণ নয় এবং সাধারণত উপেক্ষা করা হয়।
গুরুত্বপূর্ণ ফাইল এবং তাদের ভূমিকা
- ember-cli-build.js
অ্যাপ্লিকেশনের বিল্ড প্রক্রিয়া সংক্রান্ত কনফিগারেশন। - package.json
npm প্যাকেজ এবং স্ক্রিপ্ট সংক্রান্ত তথ্য। - .ember-cli
Ember CLI এর ডিফল্ট কনফিগারেশন। - README.md
প্রজেক্টের বিবরণ এবং ডকুমেন্টেশন।
Ember.js ডিরেক্টরি স্ট্রাকচারের বিশেষত্ব
- MVC প্যাটার্ন ফলো করা: মডেল, ভিউ, এবং কন্ট্রোলার আলাদা ফোল্ডারে থাকে।
- পুনঃব্যবহারযোগ্য কোড স্ট্রাকচার: কম্পোনেন্ট এবং সার্ভিস ভিত্তিক ডিজাইন।
- সহজ টেস্টিং:
tests/ডিরেক্টরি অ্যাপ্লিকেশনের টেস্টিংকে সহজ করে।
এই সুগঠিত ডিরেক্টরি স্ট্রাকচার Ember.js অ্যাপ্লিকেশন তৈরি এবং পরিচালনাকে সুসংহত এবং কার্যকর করে তোলে। এটি বড় অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য আদর্শ।
Read more